"结构体”课后作业题,谭浩强《c语言》第三版

来源:百度知道 编辑:UC知道 时间:2024/06/26 05:41:23
题目是这样的:
定义一个结构体变量(包括年,月,日),计算该日在本年中是第几天?注意闰年问题。

我自己写了半天,总是写不对,错误代码供大家批评指正;
--------------------------------------------------------------------
#include "stdio.h"
void main()
{
int tage,day[12],i,sum=0;
struct NewDate
{ int year,month,day;}date;

date.year=2009;date.month=2;date.day=6;

if(date.year%100==0)
{
if(date.year%400==0)tage=1;else tage=0;
}
else
{
if(date.year%4==0) tage=1;else tage=0;
}

day[0]=31;//January
day[1]=28;//Februayr
day[2]=31;//March
day[3]=30;//April
day[4]=31;//May
day[5]=30;//June
day[6]=31;//July
day[7]=31;//August
day[8]=30;//September
day[9]=31;//October
day[10]=30;//November
day[11]=31;//December

for(i=0;i<date.month;i++) sum=sum+day[i];

if(tage=1) sum++;
printf("%d

#include "stdio.h"
void main()
{
int tage,day[12],i,sum=0;
struct NewDate
{
int year,month,day;
}date;

date.year=2009;date.month=2;date.day=6;
if(date.year%100==0)
{
if(date.year%400==0)
tage=1;
else tage=0;
}
else
{
if(date.year%4==0) tage=1;else tage=0;
}

day[0]=31;//January
day[1]=28;//Februayr
day[2]=31;//March
day[3]=30;//April
day[4]=31;//May
day[5]=30;//June
day[6]=31;//July
day[7]=31;//August
day[8]=30;//September
day[9]=31;//October
day[10]=30;//November
day[11]=31;//December
for(i=1;i<date.month;i++)
sum=sum+day[i-1];//前几个月的天数加上当月的天数才是对的
sum+=date.day;

if(tage==1&&date.month>2) sum++; //tage==1 当过了二月以后 是闰年才加上那个一
printf("%d-%d-%d is %d in %d\n",date.year,date.month,date.day,sum,date.year);
}

我用的手机不好写,你直接在网上搜